// pages/cart/cart.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    cartList:[],
    checkedAll:false,
    priceAll:0,
    numAll:0,
    address:''
  },
  getList(){
    this.setData({
      cartList:wx.getStorageSync('cartList') || []
    })
  },
  computed(){  // 封装的计算总价和总数的函数
    let num=0
    let price=0
    this.data.cartList.forEach(item=>{
      if(item.checked){
        num+=item.num
        price+=item.num*item.price
      }
    })
    wx.setStorageSync('cartList', this.data.cartList)
    this.setData({
      priceAll:price,
      numAll:num
    })
  },
  ckAll(){  // 全选
    this.data.cartList.forEach(item=>{
      item.checked=!this.data.checkedAll
    })
    this.setData({
      checkedAll:!this.data.checkedAll,
      cartList:this.data.cartList
    })
    this.computed()
  },
  onSingleChange(e){
    let {index}=e.currentTarget.dataset
    this.data.cartList[index].checked=!this.data.cartList[index].checked
    let checked=this.data.cartList.every(item=>item.checked)
    this.computed()
    this.setData({
      checkedAll:checked
    })
  },
  //加
  add(e){
    let {index}=e.currentTarget.dataset
    this.data.cartList[index].num+=1
    this.setData({
      cartList:this.data.cartList
    })
    this.computed()
  },
  //减
  addprice(e){
    let {index}=e.currentTarget.dataset
    if(this.data.cartList[index].num<=1) return false // 判断当前数量是否小于等于1
    this.data.cartList[index].num-=1
    this.setData({
      cartList:this.data.cartList
    })
    this.computed()
  },
  handleChooseAddress(){ // 选择地址
    wx.chooseAddress({
      success: (result) => {
        wx.setStorageSync('address', result) // 把选择的数据存入本地
      },
    })
  },
  toPay(){  // 去支付页
    let address=wx.getStorageSync('address') || ''
    if(!address){  // 判断是否选择地址
      wx.showToast({
        title: '请选择地址',
        icon:'error'
      })
      return false
    }
    if(this.data.numAll>0){  // 判断是否选中商品
      wx.navigateTo({
        url: '/pages/pay/pay',
      })
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getList()
    this.computed()
    let checked=this.data.cartList.every(item=>item.checked)
    let address=wx.getStorageSync('address') || ''
    this.setData({
      address:address,
      checkedAll:checked
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})